#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc,char const* argv[])
{
    int fd_src=-1;
    int fd_fifo=-1;
    int count=0;
    char buf[32]="";

    if(mkfifo("./fifo",0666)==-1)
    {
        if(errno==EEXIST)
        {
            printf("fifo exist\n");
        }
        else
        {
            perror("mkfifo err\n");
            return -1;
        }
    }
    fd_src=open(argv[1],O_RDONLY);
    if(fd_src<0)
    {
        perror("src open err\n");
        return -1;
    }
    fd_fifo=open("./fifo",O_WRONLY|O_CREAT|O_TRUNC,0666);
    if(fd_fifo<0)
    {
        perror("fifo open err\n");
        close(fd_src);
        return -1;
    }
    while((count=read(fd_src,buf,32))>0)
    {
        write(fd_fifo,buf,count);
    }

    printf("input end!\n");

    close(fd_src);
    close(fd_fifo);

    return 0;
}